package IndusmecaSI.Indusmeca_Controller
{
	import IndusmecaSI.Indusmeca_Model.Model_User_Service;
	import IndusmecaSI.Indusmeca_Type.User;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.core.FlexGlobals;
	
	public class Controller_User
	{
		
//		private var _resultHandler:Function;
//		private var _faultHandler:Function;
		private var userConn:Model_User_Service = new Model_User_Service(resultBdd,faultBdd);
		private var user:User;
		private var form:Object;
		
		public function Controller_User(formSrc:Object)
		{
			form = formSrc;	
		}
		
		public function resultBdd(type:int,result:Object):void
		{
			trace('le type est :'+type.toString());
			
			switch(type)
			{
				// Creation d'utilisateur renvoir l'id du nouvel utilisateur
				case 1:
				{
					
					trace('L\'id du nouvel utilisateur est : '+result.toString());
					Alert.show("L'utilisateur est bien \nenregistrer sous l'ID : "+result.toString()
						+"\n\nLe compte est en cours de validation","Utilisateur Enregistré");
					break;
				}
					// Renvoi un utilisateur (recherche en fonction de son ID)
				case 2:
				{
					trace('L\'utilisateur est : '+result[0].toString());		
					break;
				}
				case 3:
				{
					// Renvoi tous les utilisateurs
					trace('La liste d\'utilisateurs : '+result[0].toString());
					break;
				}
				case 4:
				{
					// Renvoi un utilisateur (recherche en fonction des infos User)
					if (result is User){
						if( user.login == result.login && user.password == result.password && user.id_company == result.id_company)
						{
							trace('L\'utilisateur est valide ');
							FlexGlobals.topLevelApplication.setLbBienvenue(result.firstname,result.id_user);
							FlexGlobals.topLevelApplication.currentState='Accueil';
						}
						trace('L\'utilisateur est  '+result.login);
						
					}
					break;
				}
				case 5:
				{
					// Renvoi la liste des company
					form.setListCompany(result);
					trace('La liste des company est : '+result.toString());
					break;
				}
					
				case 6:
					break;
				default:
				{
					break;
				}
			}
		}
		
		public function faultBdd(fault:String):void
		{
			Alert.show("Erreur : "+ fault,"Operation non effectuée");
		}
		
		public function getAllCompany():void
		{
			userConn.getAllCompany();
		}
		public function getCompanyCombo():void
		{
			userConn.getCompanyCombo();
		}
		
		public function Validation_Login(user:User):void
		{
			this.user = user;
			userConn.getUserByUser(this.user);	
		}
		
		public function Validation_Inscription(user:User):void
		{
			userConn.createUser(user);
		}
		/*	import mx.controls.Alert; 
		import IndusmecaSI.Indusmeca_Model.Model_User_Service;
		import mx.core.FlexGlobals;
		
		private var listcomp:Model_User_Service = new Model_User_Service();
		private var formSource:Object;
		private var user:User;
		public function Controller_Login(FormSource:Object)
		{
		this.formSource = FormSource;
		}
		
		
		
		
		public function validForm(user:User):void
		{
		
		if (formSource.currentState.valueOf() == 'MenuLogin'){
		
		var cState:String = FlexGlobals.topLevelApplication.currentState.valueOf();
		if ( cState == 'Login' && this.user.LOGIN == user.LOGIN && this.user.PASSWORD == user.PASSWORD && this.user.id_company == user.id_company){ //&& txt_Login.text == user.LOGIN &&	txt_Password.text == user.PASSWORD){
		FlexGlobals.topLevelApplication.setLbBienvenue(user.firstname,user.ID_USER);
		FlexGlobals.topLevelApplication.currentState='Accueil';
		}
		else{
		Alert.show('Utilisateur inconnu');
		}
		}else
		{
		Alert.show('Enregistrement Réussi'+'\n\nCompte en cours \nde validation');
		}
		
		}
		
		public function Validation_Inscription(user:User):void
		{
		
		
		listcomp.createUser(this,formSource,user);
		
		Alert.show('click inscription');	
		}
		
		public function loadListSociete():void
		{
		var listcomp:Model_User_Service = new Model_User_Service();
		listcomp.getAllCompany(this,formSource);
		}
		*/
	}
}